package edu.gatech.ealf.ettplaf;

import java.awt.Color;
import java.util.HashMap;
import java.util.Map;

import javax.swing.JComponent;
import javax.swing.LookAndFeel;
import javax.swing.UIDefaults;

import edu.gatech.ealf.AuxiliaryLookAndFeel;
import edu.gatech.ealf.AuxiliaryUIDefaults;

public class ExtendedToolTipLookAndFeel extends AuxiliaryLookAndFeel {

    public static int toolTipDelayMs = 1200;
    public static int extendedToolTipDelayMs = 2500;
    public static Color backgroundColor = new Color(0xFF, 0xFF, 0x33);
    public static Color foregroundColor = new Color(0x00, 0x00, 0x00);
    
    private static ExtendedToolTipLookAndFeel instance = null;
    
    public static ExtendedToolTipLookAndFeel getInstance(){
    	if(instance == null){
    		instance = new ExtendedToolTipLookAndFeel();
    	}
    	return instance;
    }
    
	private ExtendedToolTipLookAndFeel(){

		uidefaults = new AuxiliaryUIDefaults();
        Object[] uiDefaults = {
         "ButtonUI" , "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "ToggleButtonUI" , "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "SliderUI" , "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "RadioButtonUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "RadioButtonMenuItemUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "CheckBoxUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "CheckBoxMenuItemUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "ComboBoxUI", "edu.gatech.ealf.ettplaf.ETTComboBoxUI",
         "LabelUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "TreeUI", "edu.gatech.ealf.ettplaf.ETTTreeUI",
         "TextFieldUI", "edu.gatech.ealf.ettplaf.ETTTextUI",
         "PasswordFieldUI", "edu.gatech.ealf.ettplaf.ETTTextUI",
         "ListUI", "edu.gatech.ealf.ettplaf.ETTListUI",
         "ProgressBarUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "TextAreaUI", "edu.gatech.ealf.ettplaf.ETTTextUI",
         "MenuItemUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "EditorPaneUI", "edu.gatech.ealf.ettplaf.ETTTextUI",
         "FormattedTextFieldUI", "edu.gatech.ealf.ettplaf.ETTTextUI",
         "TextPaneUI", "edu.gatech.ealf.ettplaf.ETTTextUI",
         "SpinnerUI" , "edu.gatech.ealf.ettplaf.ETTSpinnerUI",
         "FormattedTextFieldUI", "edu.gatech.ealf.ettplaf.ETTTextUI",
         "FileChooserUI", "edu.gatech.ealf.ettplaf.ETTFileChooserUI",
         //"ScrollPaneUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
         //"ScrollBarUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "SplitPaneUI", "edu.gatech.ealf.ettplaf.ETTSplitPaneUI",
         "ViewportUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "TableHeaderUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "TableUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "TabbedPaneUI", "edu.gatech.ealf.ettplaf.ETTTabbedPaneUI",
         //"ToolTipUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "MenuUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "MenuBarUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "ColorChooserUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
         "ToolBarUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
         //"PopupMenuUI", "edu.gatech.ealf.ettplaf.ETTGenericUI",
        };
        uidefaults.putDefaults(uiDefaults);
        

	}
	
	@Override
	public String getDescription() {
		return "A Look and Feel that supplies tool tips and extended tool tips";
	}

	@Override
	public String getID() {
		return "ExtendedToolTipLookAndFeel";
	}

	@Override
	public String getName() {
		return "ExtendedToolTipLookAndFeel";
	}

	@Override
	public boolean isNativeLookAndFeel() {
		return false;
	}

	@Override
	public boolean isSupportedLookAndFeel() {
		return true;
	}
	
	@Override
	public UIDefaults getDefaults() {
        return uidefaults;
    }
	

}
